home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 22
/
Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso
/
Aminet
/
dev
/
e
/
amigae33a.lha
/
E_v3.3a
/
Src.lha
/
Src
/
Tools
/
Useful
/
sendrexx.e
< prev
next >
Wrap
Text File
|
1997-05-31
|
1KB
|
47 lines
OPT MODULE, PREPROCESS
MODULE 'exec/ports',
'exec/nodes',
'rexx/rxslib',
'rexx/storage',
'rexxsyslib',
'amigalib/ports'
ENUM ERR_NONE, ERR_LIB, ERR_RMSG, ERR_RSTR
RAISE ERR_LIB IF OpenLibrary()=NIL,
ERR_RMSG IF CreateRexxMsg()=NIL,
ERR_RSTR IF CreateArgstring()=NIL
EXPORT PROC rx_SendMsg(portname, s, repPort=NIL) HANDLE
DEF port=NIL, msg=NIL:PTR TO rexxmsg, myrep=NIL, lib=NIL, success=FALSE
IF rexxsysbase=NIL
rexxsysbase:=lib:=OpenLibrary(RXSNAME, 0)
ENDIF
IF repPort=NIL
IF NIL=(repPort:=myrep:=createPort(NIL,0)) THEN Raise("PORT")
ENDIF
msg:=CreateRexxMsg(repPort, NIL, portname)
msg.action:=RXCOMM
msg.args[]:=CreateArgstring(s, StrLen(s))
msg.mn.ln.name:=RXSDIR
Forbid()
IF port:=FindPort(RXSDIR) THEN PutMsg(port, msg)
Permit()
IF port
WaitPort(repPort)
msg:=GetMsg(repPort)
success:=(msg.result1=0)
ENDIF
EXCEPT DO
IF msg
IF msg.args[] THEN DeleteArgstring(msg.args[])
DeleteRexxMsg(msg)
ENDIF
IF myrep THEN deletePort(myrep)
IF lib
CloseLibrary(lib)
rexxsysbase:=NIL
ENDIF
ENDPROC success